﻿using System;

namespace Oxage.Windows.Controls
{
	/// <summary>
	/// Implements a hanadler for a command and its arguments. This interface should be used in conjunction with CommandLineHandlerAttribute.
	/// </summary>
	public interface ICommandLineHandler
	{
		/// <summary>
		/// When implemented runs a command with arguments.
		/// </summary>
		/// <param name="console">Console that issued the command and that should display any output.</param>
		/// <param name="line">Raw executed command line (i.e. command and arguments without processing)</param>
		/// <param name="command">Command - first word until white space.</param>
		/// <param name="args">Arguments - all other words after the command.</param>
		void Run(IConsole console, string line, string command, Arguments args);
	}
}
